Technical Field
The present disclosure generally relates to decoding machine-readable symbols, such as digital watermarks.
Description of the Related Art
Machine-readable symbols encode information in a form that can be optically read via a machine-readable symbol reader or scanner. Machine-readable symbols take a variety of forms, the most commonly recognized form being the linear or one-dimensional machine-readable symbol. Other forms include two-dimensional machine-readable symbols such as stacked code symbols, area or matrix code symbols, or digital watermarks. These machine-readable symbols may be made of patterns of high and low reflectance areas. For instance, a one-dimensional barcode symbol may comprise a pattern of black bars on a white background. Also for instance, a two-dimensional symbol may comprise a pattern of black marks (e.g., bars, squares or hexagons) on a white background. Machine-readable symbols are not limited to being black and white, but may comprise two other colors, and/or may include more than two colors (e.g., more than black and white).
Machine-readable symbols are typically composed of elements (e.g., symbol characters) which are selected from a particular machine-readable symbology. Information is encoded in the particular sequence of shapes (e.g., bars) and spaces which may have varying dimensions. The machine-readable symbology provides a mapping between machine-readable symbols or symbol characters and human-readable symbols (e.g., alpha, numeric, punctuation, commands). A large number of symbologies have been developed and are in use, for example Universal Product Code (UPC), International Article Number (EAN), Code 39, Code 128, Data Matrix, PDF417, etc.
Machine-readable symbols have widespread and varied applications. For example, machine-readable symbols can be used to identify a class of objects (e.g., merchandise) or unique objects (e.g., patents). As a result, machine-readable symbols are found on a wide variety of objects, such as retail goods, company assets, and documents, and help track production at manufacturing facilities and inventory at stores (e.g., by scanning objects as they arrive and as they are sold). In addition, machine-readable symbols may appear on a display of a portable electronic device, such as a mobile telephone, personal digital assistant, tablet computer, laptop computer, or other device having an electronic display. For example, a customer, such as a shopper, airline passenger, or person attending a sporting event or theater event, may cause a machine-readable symbol to be displayed on their portable electronic device so that an employee (e.g., merchant-employee) can read the machine-readable symbol via a machine-readable symbol reader to allow the customer to redeem a coupon or to verify that the customer has purchased a ticket for the event.
Machine-readable symbols may also be used in data hiding or “steganography” applications. One form of data hiding is digital watermarking Digital watermarking is a process for modifying an object or content to embed a machine-readable signal or code into the content or object. In many instances, the data may be modified such that the embedded code or signal is imperceptible or nearly imperceptible to a user, yet may be detected through an automated detection process.
Digital watermarking systems may include two primary components: an embedding component that embeds a watermark in an object or content, and a reading component that detects or reads an embedded watermark. The embedding component (or “encoder”) may embed a watermark by altering data samples representing media content (e.g., in an image) in the spatial, temporal or some other domain (e.g., Fourier, Discrete Cosine or Wavelet transform domains). The reading component (or “reader” or “decoder”) may analyze target content to detect whether a watermark is present. In applications where the watermark encodes information (e.g., a message or payload), the reader may extract this information from a detected watermark.
Machine-readable symbol readers or scanners are used to capture images or representations of machine-readable symbols appearing on various surfaces to read the information encoded in the machine-readable symbol. One commonly used machine-readable symbol reader is an imager- or imaging-based machine-readable symbol reader. Imaging-based machine-readable symbol readers typically employ flood illumination to simultaneously illuminate the entire machine-readable symbol, either from dedicated light sources, or in some instances using ambient light. Such is in contrast to scanning or laser-based (i.e., flying spot) type machine-readable symbol readers, which scan a relative narrow beam or spot of light sequentially across the machine-readable symbol.
Machine-readable symbol readers may be fixed, for example, readers may be commonly found at supermarket checkout stands or other point of sale locations. Machine-readable symbol readers may also be handheld (e.g., handheld readers or even smartphones), or mobile (e.g., mounted on a vehicle such as a lift vehicle or a fork lift).
Imaging-based machine-readable symbol readers typically include solid-state image circuitry, such as charge-coupled devices (CCDs) or complementary metal-oxide semiconductor (CMOS) devices, and may be implemented using a one-dimensional or two-dimensional imaging array of photosensors (or pixels) to capture an image of the machine-readable symbol. One-dimensional CCD or CMOS readers capture a linear cross-section of the machine-readable symbol, producing an analog waveform whose amplitude represents the relative darkness and lightness of the machine-readable symbol. Two-dimensional CCD or CMOS readers may capture an entire two-dimensional image. The image is then processed to find and decode a machine-readable symbol. For example, virtual scan line techniques for digitally processing an image containing a machine-readable symbol sample across an image along a plurality of lines, typically spaced apart and at various angles, somewhat like a scan pattern of a laser beam in a scanning or laser-based scanner.
The performance of 2D indicia localization and decoding processes is limited by their natural sensitivity to perspective distortion caused by the skew of an image or by more complex distortions caused by irregularly shaped surfaces. Since the 2D indicia localization and decoding processes are typically based on grid localization algorithms in the space or frequency domain, any distortion on the processed images due to projective or more complex distortions modifies the grid regularity, thereby limiting the tolerance of distortions and worsening the general decoding performance.